#ifndef PSCHEDULER_H_
#define PSCHEDULER_H_

#include "ses_led.h"
#include "ses_timer.h"



/*
 * Pscheduler is a scheduler for multitasking in a round-robin system.
 *
 * It holds the tasks to be executed, their stacks, and the run function that is
 * running the scheduling.
 */



/* Holds the pointer to the first task. */
ptask* task;

/* Array of tasks in the scheduler. */
ptask* list[5];



/*
 * Initializes all tasks.
 * Allocates memory, sets them to 0, initialize the round-robin circle.
 */
void initScheduler(void);

/*
 * Prints "a"s.
 */
void taskA(void);

/*
 * Prints "b"s.
 */
void taskB(void);

/*
 * Prints "c"s.
 */
void taskC(void);

/*
 * Runs the round-robin scheduling system.
 */
void run(void);



#endif /* PSCHEDULER_H_ */
